'''
    自顶向下递归
'''
def dp(x,y):
    for i in 所有可能的选择:
        result = 求最值(result,dp(x,y))
    return result

'''
    自底向上迭代
'''
dp[0][0][...] = base case
#进行状态转移
for x in x 的所有取值:
    for y in y 的所有取值:
        for .....
            dp[x][y][...] = 求最值(选择1，选择2)